package ink.tiptop.service;

import ink.tiptop.persist.domain.bo.LocalViewDto;
import ink.tiptop.persist.domain.entity.ZjfModuleLocalViewEntity;
import ink.tiptop.dto.req.local.view.*;
import ink.tiptop.common.domain.rsp.Response;

import java.util.List;

/**
 * 本地模块结构视图(ZjfModuleLocalViewEntity)表服务接口
 *
 * @author makejava
 * @since 2020-06-21 20:39:55
 */
public interface ZjfModuleLocalViewService {
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ZjfModuleLocalViewEntity queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @return 对象列表
     */
    List<ZjfModuleLocalViewEntity> queryAllByUser(String user);

    /**
     * 新增数据
     *
     * @param zjfModuleLocalViewEntity 实例对象
     * @return 实例对象
     */
    ZjfModuleLocalViewEntity insert(ZjfModuleLocalViewEntity zjfModuleLocalViewEntity);


    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 条件查询
     *
     * @param request 实例对象
     * @return 是否成功
     */
    Response list(QueryZjfModuleLocalViewRequest request);

    /**
     * 修改数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response update(UpdateZjfModuleLocalViewRequest request);

    /**
     * 删除数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response delete(DeleteZjfModuleLocalViewRequest request);

    /**
     * 添加数据
     *
     * @param request 实例对象
     * @return Response 响应数据
     */
    Response add(AddZjfModuleLocalViewRequest request);

    Response scan(ScanZjfModuleLocalViewRequest request);

    ZjfModuleLocalViewEntity getByUniqueIndex(LocalViewDto localViewDto);
}